/*
 *  author: Gregorovichz Carlos Rossi
 *  date: 15/05/2010
 */
var registroTramite;
var dsTramites;
var dsDocumentos;
var dsRutaTramite;
var dsPersonal;
var winAgregarDocumento;
var winAgregarDocumentoTramite;
var winDerivarTramite = null;
var winBuscarPersona;
var fechadocumento;
var registroPersona= null;
var winMantenerIniciarTramite = null;
var winAddUsuario = null;
var winModificarTramite =null;
var winAnexarDocumento = null;
var vfechasolicitud=null;
var registroDocumentoAnexo=null;
var registroMovimiento=null;

function mostrarBandeja(){
    registroTramite = null;
    cargarDatosUsuario();
    var frmTramites=new Ext.Panel({
        title: "",
        bodyBorder:false,
        height:200,
        border:false,
        asynchronous:false,
        bodyStyle: "background-color:#DFE8F6; border:0"
    });
    new Ajax.Request("frmGestionarBandeja.html",{
        method:"post",
        asynchronous: false,
        onSuccess: function (transport){
            frmTramites.html=transport.responseText;
        }
    });
    dsTramites=new Ext.data.Store({
        autoDestroy: true,
        url: "listaTramites.jsp",
        reader: new Ext.data.JsonReader({
            root: "tramites",
            fields:[
            {
                name: "nanio_identificador",
                type: "integer"
            },

            {
                name: "nmovi_identificador",
                type: "integer"
            },

            {
                name: "canio_anio",
                type: "string"
            },

            {
                name: "ntram_identificador",
                type: "integer"
            },

            {
                name: "ntram_numero",
                type: "string"
            },

            {
                name: "ctram_prioridad",
                type: "string"
            },

            {
                name: "ctram_tienebeneficio",
                type: "string"
            },

            {
                name: "ctram_hojatramitesige",
                type: "string"
            },

            {
                name: "dtram_fechacreacion",
                type: "string"
            },

            {
                name: "dtram_fechaatencion",
                type: "string"
            },

            {
                name: "npers_administrado",
                type: "integer"
            },

            {
                name: "cpers_apenom",
                type: "string"
            },

            {
                name: "nusua_identificador",
                type: "integer"
            },

            {
                name: "cusua_username",
                type: "string"
            },

            {
                name: "ndepe_identificador",
                type: "integer"
            },

            {
                name: "nestr_identificador",
                type: "integer"
            },

            {
                name: "cestr_descripcion",
                type: "string"
            },

            {
                name: "ctram_hojaTramite",
                type: "string"
            },

            {
                name: "ctram_observaciones",
                type: "string"
            },

            {
                name: "ctram_solicitante",
                type: "string"
            },

            {
                name: "nsolicitabeneficio",
                type: "string"
            }
            ]
        })
    });
    dsTramites.on("exception",function(proxy, type, action, options, response, arg){
        Ext.MessageBox.alert("Error","Error DIRPEN:0201: No se pudo cargar DataStore dsTramites");
    });
    var grdTramites=new Ext.grid.GridPanel({
        title: "",
        store: dsTramites,
        loadMask: true,
        stripeRows: true,
        height: 200,
        plugins:[new Ext.ux.grid.Search({
            mode:'local',
            iconCls:false,
            minLength:2,
            width: 350
        })],
        columns:[new Ext.grid.RowNumberer({width: 50}),{
            header: "HT Interna",
            dataIndex: "ctram_hojaTramite",
            width: 100
        },{
            header: "HT SIGE",
            dataIndex: "ctram_hojatramitesige",
            width: 100
        },{
            header: "Solicitante",
            dataIndex: "ctram_solicitante",
            width: 150
        },{
            header: "Causante",
            dataIndex: "cpers_apenom",
            width: 150
        },{
            header: "Solicita",
            dataIndex: "nsolicitabeneficio",
            width: 300
        },{
            header: "Fecha Inicio",
            dataIndex: "dtram_fechacreacion",
            width: 120
        },{
            header: "Prioridad",
            dataIndex: "ctram_prioridad",
            width: 80,
            renderer:colorPrioridad
        }],
        tbar:[{
            text:'Iniciar Tramite',
            id: "btnIniciarTramite",
            iconCls:'icon-add',
            handler: function(){
                iniciarTramite(true);
            }
        },{
            text:'Derivar Tramite',
            id: "btnDerivarTramite",
            iconCls:'icon-move',
            handler: function(){
                if (registroTramite!=null && registroTramite.data.ntram_identificador>0){
                    if (document.getElementById("cboestadobandeja").value==1 || document.getElementById("cboestadobandeja").value==5 || document.getElementById("cboestadobandeja").value==7){
                        Ext.MessageBox.alert("Aviso del Sistema","El tramite debe ser recibido o iniciado en su defecto para poder ser derivado");
                    }
                    else{
                        derivarTramite(registroTramite.data.ntram_identificador);
                    }
                }else{
                    Ext.MessageBox.alert("Aviso del Sistema","Debe de seleccionar un registro para proceder a derivar");
                }
            }
        },{
            text:'Recibir Tramite',
            id:'btnrecibirtramite',
            iconCls:'icon-modify',
            handler: function(){
                if (registroTramite!=null && (document.getElementById("cboestadobandeja").value == "1" || document.getElementById("cboestadobandeja").value == "3" )){
                    modificarTramite(registroTramite.data.nmovi_identificador);
                }else{
                    Ext.MessageBox.alert("Aviso del Sistema","Solo puede modificar aquellos documentos que estan por recibir o recibidos");
                }
            }
        },{
            text:'Eliminar Tramite',
            iconCls:'icon-delete',
            id: 'btnEliminarTramite',
            handler: function(){
                if (registroTramite!=null && registroTramite.data.ntram_identificador>0){
                    eliminarTramiteDocumentario(registroTramite.data);
                }else{
                    Ext.MessageBox.alert("Aviso del Sistema","Debe de seleccionar un registro para eliminar");
                }
            }
        }

        ]
    });

    grdTramites.on("dblclick",function(grid,rowIndex,e){
        if (document.getElementById("cboestadobandeja").value==1 || document.getElementById("cboestadobandeja").value==5 || document.getElementById("cboestadobandeja").value==7){
            Ext.MessageBox.alert("Aviso del Sistema","El tramite debe ser recibido o iniciado en su defecto para poder ser derivado");
        }else{
            derivarTramite(registroTramite.data.ntram_identificador);
        }
    });

    var seleccionTramite=grdTramites.getSelectionModel();
    seleccionTramite.on("rowselect",function(sm,fila,registro){
        registroTramite=registro;
        dsRutaTramite.reload({
            params:{
                ntramidentificador: registroTramite.data.ntram_identificador
            }
        });
        dsDocumentos.reload({
            params:{
                ntramidentificador: registroTramite.data.ntram_identificador
            }
        });
    });
    var chkIniciaTramite = new Ext.grid.CheckColumn({
        header: "¿Inicia Tramite?",
        dataIndex: 'ndocuEsprincipal',
        width: 90
    });
    chkIniciaTramite.onMouseDown=function(e,t){};
    dsDocumentos =new Ext.data.Store({
        autoDestroy: true,
        url: "listaDocumentosTramite.jsp",
        reader: new Ext.data.JsonReader({
            root: "documentotramite",
            fields:[
            {
                name: "ntidoIdentificador"
            },

            {
                name: "ctido_descripcion"
            },

            {
                name: "ndepeIdentificadoringreso"
            },

            {
                name: "ddocuFechacreacion"
            },

            {
                name: "ndocuEsprincipal",
                type: "bool"
            },

            {
                name: "ntramIdentificador"
            },

            {
                name: "ndocuIdentificador"
            },

            {
                name: "nesdoIdentificador"
            },

            {
                name: "cdocu_numero"
            },

            {
                name: "ntramReferencia"
            },

            {
                name: "nanioIdentificador"
            },

            {
                name: "canioAnio"
            },

            {
                name: "cdocuNumeroCompleto"
            },

            {
                name: "cdocuSiglasOficina"
            },

            {
                name: "ndocuNroFolios"
            },

            {
                name: "cdocuDescripcion"
            },
            ]
        })
    });
    dsDocumentos.on("exception",function(proxy, type, action, options, response, arg){
        Ext.MessageBox.alert("Error","Error DIRPEN:0202: No se pudo cargar DataStore dsDocumentos");
    });
    var grdDocumentos=new Ext.grid.GridPanel({
        title: "Documentos Anexados",
        store: dsDocumentos,
        loadMask: true,
        stripeRows: true,
        height: 200,
        columns:[{
            header: "Tipo Documento",
            dataIndex: "ctido_descripcion",
            width: 100
        },{
            header: "Nro Documento",
            dataIndex: "cdocuNumeroCompleto",
            width: 100
        },{
            header: "Num. Folios",
            dataIndex: "ndocuNroFolios",
            width: 100
        },{
            header: "Fecha Creacion",
            dataIndex: "ddocuFechacreacion",
            width: 120
        },chkIniciaTramite],
        tbar:[{
            text:'Agregar',
            id: "btnAgregarDocumentoTramite",
            iconCls:'icon-add',
            handler: function(){
                if (registroTramite!=null && registroTramite.data.ntram_identificador>0){
                    anexarDocumento(true);
                }else{
                    Ext.MessageBox.alert("Aviso del Sistema","Debe de seleccionar un tramite para anexar documentos");
                }

            }
        },{
            text:'Modificar',
            id: "btnModificarDocumentoTramite",
            iconCls:'icon-modify',
            handler: function(){
                if (registroDocumentoAnexo!=null && registroDocumentoAnexo.data.ndocuIdentificador>0){
                    anexarDocumento(false);
                }else{
                    Ext.MessageBox.alert("Aviso del Sistema","Debe de seleccionar un documento para proceder a modificar");
                }
            }
        }
        ]
    });

    var seleccionDocumentoAnexo=grdDocumentos.getSelectionModel();
    seleccionDocumentoAnexo.on("rowselect",function(sm,fila,registro){
        registroDocumentoAnexo=registro;
    });


    grdDocumentos.on("render",function(component){
        dsDocumentos.load({
            params:{
                ntramidentificador: 0
            }
        });
    });
    //registroMovimiento
    dsRutaTramite =new Ext.data.Store({
        autoDestroy: true,
        url: "lista-ruta-tramite",
        reader: new Ext.data.JsonReader({
            root: "rutatramite",
            fields:[{
                name: "nmoviIdentificador"
            },{
                name: "nesmoIdentificador"
            },{
                name: "dmoviFechaEnvio"
            },{
                name: "dmoviFechaCreacion"
            },{
                name:"cesmoDescripcion"
            },{
                name:"cdepeOrigen"
            },{
                name:"cdepeDestino"
            },{
                name:"dmoviFechaRecepcion"
            }]
        })
    });
    dsRutaTramite.on("exception",function(proxy, type, action, options, response, arg){
        Ext.MessageBox.alert("Error","Error DIRPEN:0203: No se pudo cargar DataStore dsRutaTramite");
    });

    var grdRutaTramite=new Ext.grid.GridPanel({
        title: "Ruta Tramite",
        store: dsRutaTramite,
        loadMask: true,
        stripeRows: true,
        height: 200,
        columns:[{
            header: "Viene de",
            dataIndex: "cdepeOrigen",
            width: 148
        },{
            header: "Va a",
            dataIndex: "cdepeDestino",
            width: 148
        },{
            header: "Fecha Envio",
            dataIndex: "dmoviFechaEnvio",
            width: 120
        },{
            header:"Fecha Recepcion",
            dataIndex: "dmoviFechaRecepcion",
            width: 120
        },{
            header: "Estado",
            dataIndex: "cesmoDescripcion",
            width: 60
        }],
        tbar: [{
            text:'Imprimir',
            id: "btnImprimirHojaRutaTramite",
            iconCls:'icon-print',
            handler: function(){
                printHojaRuta();
            }
        }
        ,{
            text:'Eliminar Movimiento',
            iconCls:'icon-delete',
            id: 'btnEliminarMovimiento',
            handler: function(){

                if (document.getElementById("cboestadobandeja").value==5){
                    if (registroMovimiento!=null && registroMovimiento.data.nmoviIdentificador>0){
                        eliminarMovimientoTramite(registroMovimiento.data);
                    }else{
                        Ext.MessageBox.alert("Aviso del Sistema","Debe de seleccionar un registro para eliminar");
                    }
                }else{
                    alert("Solo se puede eliminar movimientos de los tramites derivados");
                }
            }
        }
        ]
    });
    var seleccionRuta=grdRutaTramite.getSelectionModel();
    seleccionRuta.on("rowselect",function(sm,fila,registro){
        registroMovimiento=registro;
    });
    grdRutaTramite.on("render",function(component){
        dsRutaTramite.load({
            params:{
                ntramidentificador: 0
            }
        });
    });

    var win = new Ext.Window({
        title:'Bandeja de Documentos',
        closeAction:'destroy',
        width:1100,
        height:527,
        x:0,
        y:0,
        shim:false,
        maximizable:false,
        resizable: false,
        animCollapse:false,
        layout:'border',
        items:[{
            region: 'north',
            height: 300,
            split: false,
            border:false,
            layout:'border',
            xtype: 'panel',
            items: [{
                region: 'north',
                height: 35,
                split: false,
                border: false,
                layout: 'fit',
                xtype:'panel',
                items: frmTramites
            },{
                region: 'center',
                height: 265,
                split: false,
                layout: 'fit',
                border:false,
                xtype: 'panel',
                items: grdTramites
            }]
        },{
            region: 'center',
            height: 100,
            split: false,
            border:false,
            xtype: 'panel',
            layout:'border',
            bodyStyle: "background-color:#DFE8F6; border:0",
            items: [{
                region: 'west',
                height: 190,
                width: 525,
                split: false,
                border: false,
                xtype: 'panel',
                layout: 'fit',
                bodyStyle: "background-color:#DFE8F6; border:0",
                items: grdDocumentos
            },{
                region: 'center',
                height: 190,
                width: 525,
                split: false,
                border: false,
                xtype: 'panel',
                layout: 'fit',
                bodyStyle: "background-color:#DFE8F6; border:0",
                items: grdRutaTramite
            }]
        }]
    });
    win.show();
    cargarEstadosTramite();
}

function colorPrioridad(val){
    var texto="";
    if (val == "U"){
        texto = "<span style='color:red'>Urgente</span>";
    }else if (val == "R"){
        texto="<span style='color:green'>Reservado</span>";
    }else if (val == "M"){
        texto="<span style='color:red'>Muy Urgente</span>";
    }
    else if (val == "C"){
        texto="<span style='color:blue'>Confidencial</span>";
    }else{
        texto="<span style='color:green'>Normal</span>";
    }

    return texto;
}

function consultarTramite(registro){
    var frmConsultarTramite =new Ext.Panel({
        bodyBorder:true,
        height:400,
        bodyStyle: "background-color:#DFE8F6; border:0"
    });
    new Ajax.Request("frmGestionarTramite.html",{
        method: "post",
        asynchronous:true,
        onSuccess: function(transport){
            frmConsultarTramite.html=transport.responseText;
            var winConsultarTramite = new Ext.Window({
                title: 'Consultar Tramite',
                closeAction:'destroy',
                width:650,
                height:450,
                items:[frmConsultarTramite],
                shim:false,
                modal:true,
                maximizable:true,
                minimizable:false,
                animCollapse:false,
                resizable:false,
                constrainHeader:true,
                bbar:[{
                    text:'Cerrar',
                    iconCls:'icon-cancel',
                    handler: function(){
                        winConsultarTramite.destroy();
                    }
                }]
            });
            winConsultarTramite.show();
            winConsultarTramite.focus();
            cargarTipoDocumento();
            $("ctram_hojaTramite").value = registro.data.ctram_hojaTramite;
            $("ctram_hojaTramite").disabled=true;
            $("dtramFechaCreacion").value = "       "+registro.data.dtram_fechacreacion;
            $("dtramFechaCreacion").disabled=true;
            $("txtsolicitante").value = registro.data.ctram_solicitante;
            $("txtsolicitante").disabled=true;
            //alert(registro.data.ntram_identificador);
            ObtenerDatosTramite(registro.data.ntram_identificador);
        },
        onFailure:function(t){
            Information("Aviso del Sistema","Error DIRPEN:0403: Sucedio al consultar el tramite");
        }
    });
}

function ObtenerDatosTramite(idtramite){
    new Ajax.Request("jsonConsultarTramite.jsp",{
        method: "POST",
        asynchronous:true,
        onSuccess: function(transport){

        },
        onFailure:function(t){
            Information("Aviso del Sistema","Error DIRPEN:0404: Sucedio al consultar el tramite");
        }
    });
}

function filtrartipounidades(){
    var tipo = document.getElementById("cbotipounidad").value;
    new Ajax.Request("listaDependenciasTipo.jsp",{
        method: "post",
        asynchronous:false,
        parameters:{
            ntipounidad:tipo
        },
        onSuccess: function(transport){
            var eiSelect = $("ndepe_destino_nivel1");
            var eiSelect2 = $("ndepe_destino_nivel2");
            var eiSelect3 = $("ndepe_destino_nivel3");
            var eiSelect4 = $("ndepe_destino_nivel4");
            var eiSelect5 = $("ndepe_destino_nivel5");
            removeAllOptions(eiSelect);
            removeAllOptions(eiSelect2);
            removeAllOptions(eiSelect3);
            removeAllOptions(eiSelect4);
            removeAllOptions(eiSelect5);
            eiSelect.disabled=true;
            eiSelect2.disabled=true;
            eiSelect3.disabled=true;
            eiSelect4.disabled=true;
            eiSelect5.disabled=true;

            var lstDependencias = transport.responseText.evalJSON();
            if (lstDependencias.dependencia.length>0){
                eiSelect.disabled=false;
            }
            for (i=0;i<lstDependencias.dependencia.length;i++){
                var eOption = document.createElement("option");
                eOption.setAttribute("value", lstDependencias.dependencia[i].ndepeIdentificador);
                eOption.appendChild(document.createTextNode(lstDependencias.dependencia[i].cdepeNombre));
                eiSelect.appendChild(eOption);
            }
            if (eiSelect.value!=null){
                cargarDivisiones();
            }
        }
    });
}


function cargarDivisiones(){
    var division = document.getElementById("ndepe_destino_nivel1").value;
    if (division!=null && division!=""){
        new Ajax.Request("listaDependenciasDpto.jsp",{
            method: "post",
            asynchronous:false,
            parameters:{
                ndepeid:division
            },
            onSuccess: function(transport){
                var eiSelect = $("ndepe_destino_nivel2");
                removeAllOptions(eiSelect);
                var eiSelect3 = $("ndepe_destino_nivel3");
                var eiSelect4 = $("ndepe_destino_nivel4");
                var eiSelect5 = $("ndepe_destino_nivel5");
                removeAllOptions(eiSelect3);
                removeAllOptions(eiSelect4);
                removeAllOptions(eiSelect5);
                eiSelect.disabled=true;
                eiSelect3.disabled=true;
                eiSelect4.disabled=true;
                eiSelect5.disabled=true;
                var lstDependencias = transport.responseText.evalJSON();
                if (lstDependencias.dependencia.length>0){
                    eiSelect.disabled=false;
                }
                for (i=0;i<lstDependencias.dependencia.length;i++){
                    var eOption = document.createElement("option");
                    eOption.setAttribute("value", lstDependencias.dependencia[i].ndepeIdentificador);
                    eOption.appendChild(document.createTextNode(lstDependencias.dependencia[i].cdepeNombre));
                    eiSelect.appendChild(eOption);
                }
                if(eiSelect.value != null){
                    cargarDepartamentos();
                }
            }
        });
    }
}

function cargarDepartamentos(){
    var departamento = document.getElementById("ndepe_destino_nivel2").value;
    if (departamento!=null && departamento!=""){
        new Ajax.Request("listaDependenciasOficina.jsp",{
            method: "post",
            asynchronous:true,
            parameters:{
                ndptoid:departamento,
                nivel:2
            },
            onSuccess: function(transport){
                var eiSelect = $("ndepe_destino_nivel3");
                var eiSelect4 = $("ndepe_destino_nivel4");
                var eiSelect5 = $("ndepe_destino_nivel5");
                removeAllOptions(eiSelect);
                removeAllOptions(eiSelect4);
                removeAllOptions(eiSelect5);
                eiSelect.disabled=true;
                eiSelect4.disabled=true;
                eiSelect5.disabled=true;

                var lstDependencias = transport.responseText.evalJSON();
                if (lstDependencias.oficinas.length>0){
                    eiSelect.disabled=false;
                }
                for (i=0;i<lstDependencias.oficinas.length;i++){
                    var eOption = document.createElement("option");
                    eOption.setAttribute("value", lstDependencias.oficinas[i].ndepeIdentificador);
                    eOption.appendChild(document.createTextNode(lstDependencias.oficinas[i].cdepeNombre));
                    eiSelect.appendChild(eOption);
                }
                if (eiSelect.value!= null){
                    cargarUnidades();
                }
            }
        });
    }
}

function cargarUnidades(){
    var departamento = document.getElementById("ndepe_destino_nivel3").value;
    if (departamento!=null && departamento!=""){
        new Ajax.Request("listaDependenciasOficina.jsp",{
            method: "post",
            asynchronous:true,
            parameters:{
                ndptoid:departamento,
                nivel:3
            },
            onSuccess: function(transport){
                var eiSelect = $("ndepe_destino_nivel4");
                var eiSelect5 = $("ndepe_destino_nivel5");
                removeAllOptions(eiSelect);
                removeAllOptions(eiSelect5);
                eiSelect.disabled=true;
                eiSelect5.disabled=true;
                var lstDependencias = transport.responseText.evalJSON();
                if (lstDependencias.oficinas.length>0){
                    eiSelect.disabled=false;
                }
                for (i=0;i<lstDependencias.oficinas.length;i++){
                    var eOption = document.createElement("option");
                    eOption.setAttribute("value", lstDependencias.oficinas[i].ndepeIdentificador);
                    eOption.appendChild(document.createTextNode(lstDependencias.oficinas[i].cdepeNombre));
                    eiSelect.appendChild(eOption);
                }
                if (eiSelect.value!=null){
                    cargarAreas();
                }
            }
        });
    }
}

function cargarAreas(){
    var departamento = document.getElementById("ndepe_destino_nivel4").value;
    if (departamento!=null && departamento!=""){
        new Ajax.Request("listaDependenciasOficina.jsp",{
            method: "post",
            asynchronous:true,
            parameters:{
                ndptoid:departamento,
                nivel:4
            },
            onSuccess: function(transport){
                var eiSelect = $("ndepe_destino_nivel5");
                removeAllOptions(eiSelect);
                eiSelect.disabled=true;
                var lstDependencias = transport.responseText.evalJSON();
                if (lstDependencias.oficinas.length>0){
                    eiSelect.disabled=false;
                }
                for (i=0;i<lstDependencias.oficinas.length;i++){
                    var eOption = document.createElement("option");
                    eOption.setAttribute("value", lstDependencias.oficinas[i].ndepeIdentificador);
                    eOption.appendChild(document.createTextNode(lstDependencias.oficinas[i].cdepeNombre));
                    eiSelect.appendChild(eOption);
                }
            }
        });
    }
}

function derivarTramite(tramite){
    var frmDerivarTramite =new Ext.Panel({
        bodyBorder:true,
        height:400,
        bodyStyle: "background-color:#DFE8F6; border:0"
    });
    new Ajax.Request("frmDerivarTramite.html",{
        method: "post",
        asynchronous:true,
        onSuccess: function(transport){
            frmDerivarTramite.html=transport.responseText;
            winDerivarTramite= new Ext.Window({
                title: 'Derivar Tramite',
                closeAction:'destroy',
                width:700,
                height:260,
                items:[frmDerivarTramite],
                shim:false,
                modal:true,
                maximizable:true,
                minimizable:false,
                animCollapse:false,
                resizable:false,
                constrainHeader:true,
                bbar:[{
                    text:'Grabar',
                    iconCls:'icon-save',
                    handler: function(){
                        $("ntram_identificador").value =tramite;
                        $("ntram_dependenciaorigen").value = codigodependencia;
                        var dependenciadestino = "-99";
                        if (document.getElementById("ndepe_destino_nivel5").value.length>0){
                            dependenciadestino=document.getElementById("ndepe_destino_nivel5").value;
                        }else{
                            if (document.getElementById("ndepe_destino_nivel4").value.length>0){
                                dependenciadestino=document.getElementById("ndepe_destino_nivel4").value;
                            }else{
                                if (document.getElementById("ndepe_destino_nivel3").value.length>0){
                                    dependenciadestino=document.getElementById("ndepe_destino_nivel3").value;
                                }else{
                                    if (document.getElementById("ndepe_destino_nivel2").value.length>0){
                                        dependenciadestino=document.getElementById("ndepe_destino_nivel2").value;
                                    }else{
                                        alert("No se ha seleccionado el destino o no se encuentra disponible para recibir documentos");
                                    }
                                }
                            }
                        }
                        if (dependenciadestino!="-99"){
                            insertarDerivarTramite(dependenciadestino);
                        }
                    }
                }, '-', {
                    text:'Cancelar',
                    iconCls:'icon-cancel',
                    handler: function(){
                        winDerivarTramite.destroy();
                    }
                }]
            });

            winDerivarTramite.show();
            winDerivarTramite.focus();
            filtrartipounidades();
            $("dfechaDerivo").value = getFechaSistema();
            $("ntram_dependenciaorigen").value = dependencia;
        },
        onFailure:function(t){
            Information("Aviso del Sistema","Sucedio un error al intentar cargar el formulario"+t.responseText);
        }
    });

}

function buscarAdministrado(){
    var frmBuscar =new Ext.Panel({
        bodyBorder:true,
        height:400,
        bodyStyle: "background-color:#DFE8F6; border:0"
    });
    dsPersonal=new Ext.data.Store({
        autoDestroy: true,
        url: "listaFiltroPersonal.jsp",
        reader: new Ext.data.JsonReader({
            root: "persona",
            fields:[{
                name: "cpersApepaterno",
                type: "string"
            },{
                name: "cpersApematerno",
                type: "string"
            },{
                name: "npersIdentificador",
                type: "integer"
            },{
                name: "cpersNombre",
                type: "string"
            },{
                name: "cpers_codofin",
                type: "string"
            },{
                name: "cpers_nrocip",
                type: "string"
            },{
                name: "cpers_unidad",
                type: "string"
            },{
                name: "cpers_nrodni",
                type: "string"
            },{
                name: "cgrad_descripcion",
                type: "string"
            }]
        })
    });
    dsPersonal.on("exception",function(proxy, type, action, options, response, arg){
        Ext.MessageBox.alert("Error","Error DIRPEN:0301: No se pudo cargar DataStore dsPersonal");
    });

    var grdPersona=new Ext.grid.GridPanel({
        height: 300,
        store: dsPersonal,
        columns:[{
            header: "DNI",
            dataIndex: "cpers_nrodni",
            sortable:true,
            width: 80
        },{
            header: "Apellido Paterno",
            dataIndex: "cpersApepaterno",
            sortable:true,
            width: 150
        },{
            header: "Apellido Materno",
            dataIndex: "cpersApematerno",
            sortable:true,
            width: 150
        },{
            header: "Nombres",
            dataIndex: "cpersNombre",
            sortable:true,
            width: 150
        },{
            header: "NRO CIP",
            dataIndex: "cpers_nrocip",
            sortable:true,
            width: 100
        },{
            header: "GRADO",
            dataIndex: "cgrad_descripcion",
            sortable:true,
            width: 150
        }]
    });
    dsPersonal.reload({
        params:{
            cpersApepaterno:'-99',
            cpersApematerno:'-99',
            cpersNombre:'-99'
        }
    });

    grdPersona.on("dblclick",function(grid,rowIndex,e){
        $("txtadministrado").value = registroPersona.data.cpersApepaterno + " " +registroPersona.data.cpersApematerno+" "+registroPersona.data.cpersNombre;
        $("npers_administrado").value = registroPersona.data.npersIdentificador;
        Ext.getCmp("winbuscarpersonal").destroy();
    });

    var seleccionPersona=grdPersona.getSelectionModel();
    seleccionPersona.on("rowselect",function(sm,fila,registro){
        registroPersona=registro;
        $("txtadministrado").value = registroPersona.data.cpersApepaterno + " " +registroPersona.data.cpersApematerno+" "+registroPersona.data.cpersNombre;
        $("npers_administrado").value = registroPersona.data.npersIdentificador;
    });

    new Ajax.Request("frmBusquedaPersonal.html",{
        method: "post",
        asynchronous:false,
        onSuccess: function(transport){
            frmBuscar.html=transport.responseText;
            var winBuscar = new Ext.Window({
                title:'Buscar Personal',
                closeAction:'destroy',
                id: 'winbuscarpersonal',
                width:800,
                height: 400,
                shim:false,
                maximizable:false,
                resizable: false,
                animCollapse:false,
                layout: 'border',
                items:[{
                    region: 'north',
                    height: 100,
                    split: false,
                    border:false,
                    layout:'fit',
                    xtype: 'panel',
                    items: frmBuscar,
                    bbar:[{
                        text:'Buscar',
                        iconCls:'icon-preview',
                        handler: function(){
                            buscarPersonas();
                        }
                    }]
                },{
                    region: 'center',
                    height: 200,
                    split: false,
                    border:false,
                    xtype: 'panel',
                    layout:'fit',
                    bodyStyle: "background-color:#DFE8F6; border:0",
                    items: grdPersona
                }],
                bbar:[{
                    text:'Seleccionar',
                    iconCls:'icon-add',
                    handler: function(){
                        $("txtadministrado").value = registroPersona.data.cpersApepaterno + " " +registroPersona.data.cpersApematerno+" "+registroPersona.data.cpersNombre;
                        $("npers_administrado").value = registroPersona.data.npersIdentificador;
                        winBuscar.destroy();
                    }
                },'-',{
                    text:'Cancelar',
                    iconCls:'icon-cancel',
                    handler: function(){
                        winBuscar.destroy();
                    }
                }]
            });
            winBuscar.show();
            winBuscar.focus();
        }
    });
}

function buscarPersonas(){
    if ($("cpersApepaterno").value!="" || $("cpersApematerno").value!="" || $("cpersNombre").value !="" ){
        if ($("cpersApepaterno").value.length >= 3 || $("cpersApematerno").value.length >= 3 || $("cpersNombre").value.length >= 3 ){
            dsPersonal.reload({
                params:{
                    cpersApepaterno:$("cpersApepaterno").value,
                    cpersApematerno:$("cpersApematerno").value,
                    cpersNombre:$("cpersNombre").value
                }
            });
        }else{
            alert("Debe ingresar por lo menos 3 letras en algun criterio para realizar la busqueda");
        }
    }else{
        alert("Debe ingresar un criterio de busqueda");
    }
}

function isEnterSearch(event){
    if(event.keyCode==13 || event.which==13 ){
        buscarPersonas();
    }
}

function anexarDocumento(nuevo){
    var frmAnexarDocumento =new Ext.Panel({
        bodyBorder:true,
        height:400,
        bodyStyle: "background-color:#DFE8F6; border:0"
    });
    new Ajax.Request("frmAnexarDocumento.html",{
        method: "post",
        onSuccess: function(transport){
            frmAnexarDocumento.html=transport.responseText;
            winAnexarDocumento= new Ext.Window({
                title: (nuevo ? 'Agregar ' : 'Modificar ') + 'Documento',
                closeAction:'destroy',
                width:500,
                height:260,
                items:[frmAnexarDocumento],
                shim:false,
                modal:true,
                maximizable:true,
                minimizable:false,
                animCollapse:false,
                resizable:false,
                constrainHeader:true,
                bbar:[{
                    text:'Grabar',
                    iconCls:'icon-save',
                    handler: function(){
                        anexarDocumentoTramite(nuevo);
                    }
                }, '-', {
                    text:'Cancelar',
                    iconCls:'icon-cancel',
                    handler: function(){
                        winAnexarDocumento.destroy();
                    }
                }]
            });
            winAnexarDocumento.show();
            winAnexarDocumento.focus();
            fechadocumento = new Ext.form.DateField({
                renderTo:'fdocumento',
                id:'fdocumentoID',
                format:'d/m/Y'
            });

            $("ntramIdentificador").value = registroTramite.data.ntram_identificador;
            cargarTipoDocumento_Anexar();
            if(nuevo){
                //obtenerCorrelativoDocumento();
                $("docSiglas").value = cdepeSiglas;
                var fecha= new Date();
                $("fdocumentoID").value=getFechaSistema();
                $("txtanio").value = fecha.getFullYear();
                $("ndepeIdentificadoringreso").value = codigodependencia;
            }else{
                $("cbotipodocumento").value = registroDocumentoAnexo.data.ntidoIdentificador;
                $("txtnumerodocumento").value = registroDocumentoAnexo.data.cdocu_numero;
                $("txtanio").value = registroDocumentoAnexo.data.canioAnio;
                $("docSiglas").value = registroDocumentoAnexo.data.cdocuSiglasOficina;
                $("fdocumentoID").value = registroDocumentoAnexo.data.ddocuFechacreacion;
                $("txtresumen").value = registroDocumentoAnexo.data.cdocuDescripcion;
                $("txtnrofolios").value = registroDocumentoAnexo.data.ndocuNroFolios;
                $("ndocuidentificador").value = registroDocumentoAnexo.data.ndocuIdentificador;
            }
        },
        onFailure:function(t){
            Information("Aviso del Sistema","Sucedio un error al intentar cargar el formulario"+t.responseText);
        }
    });
}

function cargarEstadosTramite(){
    new Ajax.Request("lista-estado-tramite",{
        method: "post",
        asynchronous:false,
        onSuccess: function(transport){
            var egsSelect = $("cboestadobandeja");
            removeAllOptions(egsSelect);
            var lstestadotramite = transport.responseText.evalJSON();
            for (var i=0;i<lstestadotramite.estadotramite.length;i++){
                var eOption = document.createElement("option");
                eOption.setAttribute("value", lstestadotramite.estadotramite[i].nestrIdentificador);
                eOption.appendChild(document.createTextNode(lstestadotramite.estadotramite[i].cestrDescripcion));
                egsSelect.appendChild(eOption);
            }
            dsTramites.reload({
                params:{
                    nestridentificador: $("cboestadobandeja").value,
                    nusuaidentificador: codigousuario,
                    ndepeIdentificador: codigodependencia
                }
            });
        }
    });
    Ext.getCmp("btnrecibirtramite").disable();
    Ext.getCmp("btnEliminarMovimiento").disable();
    Ext.getCmp("btnAgregarDocumentoTramite").disable();
    Ext.getCmp("btnModificarDocumentoTramite").disable();
}

function iniciarTramite(nuevo){
    var hoy = new Date();
    var frmGestionarInicioTramite =new Ext.Panel({
        bodyBorder:true,
        height:500,
        bodyStyle: "background-color:#DFE8F6; border:0"
    });
    new Ajax.Request("frmGestionarTramite.html",{
        method: "post",
        asynchronous:false,
        onSuccess: function(transport){
            frmGestionarInicioTramite.html=transport.responseText;
            winMantenerIniciarTramite = new Ext.Window({
                title: 'Información de Tramite',
                closeAction:'destroy',
                width:720,
                height:510,
                items:[frmGestionarInicioTramite],
                shim:false,
                modal:true,
                maximizable:true,
                minimizable:false,
                animCollapse:false,
                resizable:true,
                constrainHeader:true,
                bbar:[{
                    text:'Grabar',
                    iconCls:'icon-save',
                    handler: function(){
                        insertarInicioTramite();
                    }
                }, '-', {
                    text:'Cancelar',
                    iconCls:'icon-cancel',
                    handler: function(){
                        winMantenerIniciarTramite.destroy();
                    }
                }]
            });
            winMantenerIniciarTramite.show();
            winMantenerIniciarTramite.focus();
            $("ctram_hojaTramite").value = "000001";
                //idHojaTramite();
            $("dtramFechaCreacion").value = getFechaSistema();
            $("docSiglas").value = cdepeSiglas;
            var fecha= new Date();
            $("txtanio").value = fecha.getFullYear();
            $("ndepe_identificador").value = codigodependencia;
            cargarTipoDocumento_tramite();
            if (!nuevo){
                $("frmgestionarestadotramite").nestrIdentificador.value = registroEstadoTramite.data.nestrIdentificador;
                $("frmgestionarestadotramite").cestrDescripcion.value = registroEstadoTramite.data.cestrDescripcion;
            }
            vfechasolicitud = new Ext.form.DateField({
                renderTo:'fechasolicitud',
                id:'fechasolicitud2',
                format:'d/m/Y'
            });
            vfechasolicitud.setValue(getFechaSistema());
            tramite_validartipodocu();
        },
        onFailure:function(t){
            Information("Aviso del Sistema","Sucedio un error al intentar cargar el formulario"+t.responseText);
        }
    });
}

function tramite_validartipodocu(){
    if (document.getElementById("cbotipodocumento").value=="331"){
        //obtenerCorrelativoDocumento();
        document.getElementById("txtnumerodocumento").disabled=true;
        $("txtnumerodocumento").value= "";
    }else{
        if (document.getElementById("cbotipodocumento").value=="336"){
            document.getElementById("txtnumerodocumento").disabled=true;
            $("txtnumerodocumento").value= "";
        }else{
            $("txtnumerodocumento").value= "";
            document.getElementById("txtnumerodocumento").disabled=false;
        }
    }
}
function cargarAccionAsignado(asignados){
    new Ajax.Request("lista-accion-tramite",{
        method: "post",
        asynchronous:false,
        onSuccess: function(transport){
            var eSelect = document.getElementById("lstAccionDisponibles");
            removeAllOptions(eSelect);
            var lstAccionTramite = transport.responseText.evalJSON();
            for (var i=0;i<lstAccionTramite.accionTramite.length;i++){
                var eOption = document.createElement("option");
                if (asignados.options.length>0){
                    var encontro=false;
                    for (var j=0;j<asignados.options.length;j++){
                        if (asignados.options[j].value==lstAccionTramite.accionTramite[i].nactrIdentificador){
                            encontro=true;
                            break;
                        }
                    }
                    if (!encontro){
                        eOption.setAttribute("value", lstAccionTramite.accionTramite[i].nactrIdentificador);
                        eOption.appendChild(document.createTextNode(lstAccionTramite.accionTramite[i].cactrDescripcion));
                        eSelect.appendChild(eOption);
                    }
                }else{
                    eOption.setAttribute("value", lstAccionTramite.accionTramite[i].nactrIdentificador);
                    eOption.appendChild(document.createTextNode(lstAccionTramite.accionTramite[i].cactrDescripcion));
                    eSelect.appendChild(eOption);
                }
            }
        }
    });
}

function asignarAccion(){
    var form = $("frmAsignarAccionTramite");
    var tramitesAccionDisponibles = form.lstAccionDisponibles;
    var tramitesAccionAsignados = form.lstAccionAsignados;
    var encontro = false;
    for(var i = 0; i < tramitesAccionDisponibles.options.length; i++) {
        if(tramitesAccionDisponibles.options[i].selected) {
            ingresarTramiteDispuestoDisponible(tramitesAccionDisponibles.options[i], tramitesAccionAsignados);
            encontro = true;
            break;
        }
    }
    if(encontro) {
        asignarAccion();
    }
}

function revocarAccion(){
    var form = $("frmAsignarAccionTramite");
    var tramitesAccionDisponibles = form.lstAccionDisponibles;
    var tramitesAccionAsignados = form.lstAccionAsignados;
    var encontro = false;
    for(var i = 0; i < tramitesAccionAsignados.options.length; i++) {
        if(tramitesAccionAsignados.options[i].selected) {
            eliminarTramiteDispuestoAsignado(tramitesAccionAsignados.options[i], tramitesAccionDisponibles);
            encontro = true;
            break;
        }
    }
    if(encontro) {
        revocarAccion();
    }
}

function cargarTramiteAccion(){
    var vntAsignarTramitesAccion = new Ext.Window({
        title: "Asignar Accion Tramite",
        modal: true,
        closeAction: "destroy",
        width: 910,
        closable: false,
        height: 300,
        autoLoad:{
            url: "frmGestionarTramiteAccion.html",
            callback: function(el,success,response,options) {
                cargarAccionAsignado(document.getElementById("cboAccionTramite"));
                seleccionarAccionTramite();
                var form = $("frmAsignarAccionTramite");
                var cmdAsignar = form.cmdAsignar;
                cmdAsignar.onclick = function(){
                    asignarAccion();
                }
                var cmdRevocar = form.cmdRevocar;
                cmdRevocar.onclick = function() {
                    revocarAccion();
                }
            }
        },
        bbar:[{
            text:'Continuar',
            iconCls:'icon-add',
            handler: function(){
                var listatramiteaccion = document.getElementById("cboAccionTramite");
                removeAllOptions(listatramiteaccion);
                agregarTramitesAccion();
                vntAsignarTramitesAccion.destroy();
            }
        },{
            text:'Cancelar/Cerrar',
            iconCls:'icon-cancel',
            handler: function(){
                vntAsignarTramitesAccion.destroy();
            }
        }]
    });
    vntAsignarTramitesAccion.show();
}

function seleccionarAccionTramite(){
    var form = $("frmAsignarAccionTramite");
    var tramitesaccionasignados = form.lstAccionAsignados;
    var listaacciontramite = document.getElementById("cboAccionTramite");
    var encontro=false;
    for (var z=0;z<listaacciontramite.options.length;z++){
        tramitesaccionasignados.appendChild(listaacciontramite.options[z]);
        if (z<listaacciontramite.options.length){
            encontro=true;
            break;
        }
    }
    if(encontro) {
        seleccionarAccionTramite();
    }
}

function agregarTramitesAccion(){
    var form = $("frmAsignarAccionTramite");
    var tramitesaccionasignados = form.lstAccionAsignados;
    var listaacciontramite = document.getElementById("cboAccionTramite");
    var encontro=false;
    for (var z=0;z<tramitesaccionasignados.options.length;z++){
        listaacciontramite.appendChild(tramitesaccionasignados.options[z]);
        if (z<tramitesaccionasignados.options.length){
            encontro=true;
            break;
        }
    }
    if(encontro) {
        agregarTramitesAccion();
    }
}

function seleccionAccion(){
    var form = $("frmAsignarTramiteDispuesto");
    var tramitesDispuestoAsignados = form.lstDispuestosAsignados;
    var listadispuestotramite = document.getElementById("lstTramitesDispuestos");
    var encontro=false;
    for (var z=0;z<listadispuestotramite.options.length;z++){
        tramitesDispuestoAsignados.appendChild(listadispuestotramite.options[z]);
        if (z<listadispuestotramite.options.length){
            encontro=true;
            break;
        }
    }
    if(encontro) {
        seleccionarTramitesDispuestos();
    }

}

function cargarTramitesDispuestos(){
    var vntAsignarTramitesDispuestos = new Ext.Window({
        title: "Asignar Tramites Dispuestos",
        modal: true,
        closeAction: "destroy",
        closable: false,
        width: 910,
        height: 300,
        autoLoad:{
            url: "frmGestionarTramitesDispuestos.html",
            callback: function(el,success,response,options) {
                cargarTipoBeneficioAsignado(document.getElementById("lstTramitesDispuestos"));
                seleccionarTramitesDispuestos();
                var form = $("frmAsignarTramiteDispuesto");
                var cmdAsignar = form.cmdAsignar;
                cmdAsignar.onclick = function(){
                    asignarTramiteDispuesto();
                }
                var cmdRevocar = form.cmdRevocar;
                cmdRevocar.onclick = function() {
                    revocarTramiteDispuesto();
                }
            }
        },
        bbar:[{
            text:'Continuar',
            iconCls:'icon-add',
            handler: function(){
                var listadispuestotramite = document.getElementById("lstTramitesDispuestos");
                removeAllOptions(listadispuestotramite);
                agregarTramitesSeleccionados();
                vntAsignarTramitesDispuestos.destroy();
            }
        },{
            text:'Cancelar/Cerrar',
            iconCls:'icon-cancel',
            handler: function(){
                vntAsignarTramitesDispuestos.destroy();
            }
        }]
    });
    vntAsignarTramitesDispuestos.show();
}

function seleccionarTramitesDispuestos(){
    var form = $("frmAsignarTramiteDispuesto");
    var tramitesDispuestoAsignados = form.lstDispuestosAsignados;
    var listadispuestotramite = document.getElementById("lstTramitesDispuestos");
    var encontro=false;
    for (var z=0;z<listadispuestotramite.options.length;z++){
        tramitesDispuestoAsignados.appendChild(listadispuestotramite.options[z]);
        if (z<listadispuestotramite.options.length){
            encontro=true;
            break;
        }
    }
    if(encontro) {
        seleccionarTramitesDispuestos();
    }

}

function agregarTramitesSeleccionados(){
    var form = $("frmAsignarTramiteDispuesto");
    var tramitesDispuestoAsignados = form.lstDispuestosAsignados;
    var listadispuestotramite = document.getElementById("lstTramitesDispuestos");
    var encontro=false;
    for (var z=0;z<tramitesDispuestoAsignados.options.length;z++){
        listadispuestotramite.appendChild(tramitesDispuestoAsignados.options[z]);
        if (z<tramitesDispuestoAsignados.options.length){
            encontro=true;
            break;
        }
    }
    if(encontro) {
        agregarTramitesSeleccionados();
    }
}

function asignarTramiteDispuesto(){
    var form = $("frmAsignarTramiteDispuesto");
    var tramitesDispuestoDisponibles = form.lstDispuestosDisponibles;
    var tramitesDispuestoAsignados = form.lstDispuestosAsignados;
    var encontro = false;
    for(var i = 0; i < tramitesDispuestoDisponibles.options.length; i++) {
        if(tramitesDispuestoDisponibles.options[i].selected) {
            ingresarTramiteDispuestoDisponible(tramitesDispuestoDisponibles.options[i], tramitesDispuestoAsignados);
            encontro = true;
            break;
        }
    }
    if(encontro) {
        asignarTramiteDispuesto();
    }
}

function ingresarTramiteDispuestoDisponible(disponible, tramiteDispuestoAsignado){
    tramiteDispuestoAsignado.appendChild(disponible);
}

function eliminarTramiteDispuestoAsignado(asignado, tramiteDispuestosDisponibles){
    tramiteDispuestosDisponibles.appendChild(asignado);
}

function revocarTramiteDispuesto(){
    var form = $("frmAsignarTramiteDispuesto");
    var tramitesDispuestoDisponibles = form.lstDispuestosDisponibles;
    var tramitesDispuestoAsignados = form.lstDispuestosAsignados;
    var encontro = false;
    for(var i = 0; i < tramitesDispuestoAsignados.options.length; i++) {
        if(tramitesDispuestoAsignados.options[i].selected) {
            eliminarTramiteDispuestoAsignado(tramitesDispuestoAsignados.options[i], tramitesDispuestoDisponibles);
            encontro = true;
            break;
        }
    }
    if(encontro) {
        revocarTramiteDispuesto();
    }
}

function cargarTipoBeneficioAsignado(asignados){
    new Ajax.Request("listaTipoBeneficio.jsp",{
        method: "post",
        asynchronous:false,
        onSuccess: function(transport){
            var eSelect = document.getElementById("lstDispuestosDisponibles");
            removeAllOptions(eSelect);
            var lstTipoBeneficio = transport.responseText.evalJSON();
            for (var i=0;i<lstTipoBeneficio.tablaTipoBeneficio.length;i++){
                var eOption = document.createElement("option");
                if (asignados.options.length>0){
                    var encontro=false;
                    for (var j=0;j<asignados.options.length;j++){
                        if (asignados.options[j].value==lstTipoBeneficio.tablaTipoBeneficio[i].ntibe_identificador){
                            encontro=true;
                            break;
                        }
                    }
                    if (!encontro){
                        eOption.setAttribute("value", lstTipoBeneficio.tablaTipoBeneficio[i].ntibe_identificador);
                        eOption.appendChild(document.createTextNode(lstTipoBeneficio.tablaTipoBeneficio[i].ctibe_descripcion));
                        eSelect.appendChild(eOption);
                    }
                }else{
                    eOption.setAttribute("value", lstTipoBeneficio.tablaTipoBeneficio[i].ntibe_identificador);
                    eOption.appendChild(document.createTextNode(lstTipoBeneficio.tablaTipoBeneficio[i].ctibe_descripcion));
                    eSelect.appendChild(eOption);
                }
            }
        }
    });
}

function cargarDependenciaDestino(){
    new Ajax.Request("jsonFiltrarDependencia.jsp",{
        method: "post",
        asynchronous:false,
        parameters:{
            ntipodependencia: document.getElementById("ntide_codigo").value
        },
        onSuccess: function(transport){
            var eiSelect = $("ndepe_destino");
            removeAllOptions(eiSelect);
            var lstDependencias = transport.responseText.evalJSON();
            for (i=0;i<lstDependencias.dependencia.length;i++){
                var eOption = document.createElement("option");
                eOption.setAttribute("value", lstDependencias.dependencia[i].ndepeIdentificador);
                eOption.appendChild(document.createTextNode(lstDependencias.dependencia[i].cdepeNombre));
                eiSelect.appendChild(eOption);
            }
        }
    });
}

function obtenerCorrelativoDocumento(){
    new Ajax.Request("jsonObtenerIdDocumentoTramite.jsp",{
        method:"post",
        asynchronous:true,
        parameters:{
            tipodocumento: document.getElementById("cbotipodocumento").value,
            dependencia:codigodependencia
        },
        onSuccess: function (transport){
            var documento = transport.responseText.evalJSON();
            $("txtnumerodocumento").value= documento.numerodocumento;
        }
    });
}

function cargarAccionTramite(){
    new Ajax.Request("lista-accion-tramite",{
        method:"post",
        asynchronous:true,
        onSuccess: function (transport){
            var eSelect = document.getElementById("cboAccionTramite");
            removeAllOptions(eSelect);
            var lstAccionTramite = transport.responseText.evalJSON();
            for (var i=0;i<lstAccionTramite.accionTramite.length;i++){
                var eOption = document.createElement("option");
                eOption.setAttribute("value", lstAccionTramite.accionTramite[i].nactrIdentificador);
                eOption.appendChild(document.createTextNode(lstAccionTramite.accionTramite[i].cactrDescripcion));
                eSelect.appendChild(eOption);
            }
        }
    });
}

function cargarTipoDocumento_Anexar(){
    new Ajax.Request("lista-tipos-documento",{
        method:"post",
        asynchronous:false,
        onSuccess: function (transport){
            var eSelect = document.getElementById("cbotipodocumento");
            removeAllOptions(eSelect);
            var lsttipodocumento= transport.responseText.evalJSON();
            for (var i=0;i<lsttipodocumento.tipos.length;i++){
                var eOption = document.createElement("option");
                eOption.setAttribute("value", lsttipodocumento.tipos[i].ntidoIdentificador);
                eOption.appendChild(document.createTextNode(lsttipodocumento.tipos[i].ctidoDescripcion));
                eSelect.appendChild(eOption);
            }
        }
    });
}

function cargarTipoDocumento(){
    new Ajax.Request("lista-tipos-documento",{
        method:"post",
        asynchronous:true,
        onSuccess: function (transport){
            var eSelect = document.getElementById("cbotipodocumento");
            removeAllOptions(eSelect);
            var lsttipodocumento= transport.responseText.evalJSON();
            for (var i=0;i<lsttipodocumento.tipos.length;i++){
                var eOption = document.createElement("option");
                eOption.setAttribute("value", lsttipodocumento.tipos[i].ntidoIdentificador);
                eOption.appendChild(document.createTextNode(lsttipodocumento.tipos[i].ctidoDescripcion));
                eSelect.appendChild(eOption);
            }
            document.getElementById("cbotipodocumento").value=331;
            //obtenerCorrelativoDocumento();
        }
    });
}

function cargarTipoDocumento_tramite(){
    new Ajax.Request("lista-tipos-documento",{
        method:"post",
        asynchronous:false,
        onSuccess: function (transport){
            var eSelect = document.getElementById("cbotipodocumento");
            removeAllOptions(eSelect);
            var lsttipodocumento= transport.responseText.evalJSON();
            for (var i=0;i<lsttipodocumento.tipos.length;i++){
                var eOption = document.createElement("option");
                eOption.setAttribute("value", lsttipodocumento.tipos[i].ntidoIdentificador);
                eOption.appendChild(document.createTextNode(lsttipodocumento.tipos[i].ctidoDescripcion));
                eSelect.appendChild(eOption);
            }
            document.getElementById("cbotipodocumento").value=331;
            //obtenerCorrelativoDocumento();
        }
    });
}

function cargarTipoMovimiento(){
    new Ajax.Request("lista-tipo-movimiento",{
        method:"post",
        asynchronous:true,
        onSuccess: function (transport){
            var eSelect = document.getElementById("ntimo_identificador");
            removeAllOptions(eSelect);
            var lstTipoMovimiento= transport.responseText.evalJSON();
            for (var i=0;i<lstTipoMovimiento.tipomovimiento.length;i++){
                var eOption = document.createElement("option");
                eOption.setAttribute("value", lstTipoMovimiento.tipomovimiento[i].ntimoIdentificador);
                eOption.appendChild(document.createTextNode(lstTipoMovimiento.tipomovimiento[i].ctimoDescripcion));
                eSelect.appendChild(eOption);
            }
        }
    });
}

function anexarDocumentoTramite(nuevo){
    var docunumero =$("txtnumerodocumento").value+"-"+$("txtanio").value+"-"+$("txtnombredirpen").value+"-"+$("docSiglas").value;
    new Ajax.Request("jsonInsertarDocumentoTramite.jsp",{
        method:"post",
        parameters: {
            ntidoidentificador: document.getElementById("cbotipodocumento").value ,
            ntramidentificador: $("ntramIdentificador").value,
            cdocunumero: $("txtnumerodocumento").value,
            cdocunumerocompleto:docunumero,
            cdocusiglasoficina:$("docSiglas").value,
            dfechadocumento: fechadocumento.getRawValue(),
            ndocunrofolios:$("txtnrofolios").value,
            ndepeidentificador: codigodependencia,
            cdocudescripcion: $("txtresumen").value,
            accion: nuevo ? 'N' : 'M',
            ndocuidentificador:$("ndocuidentificador").value
        },
        onSuccess: function(transport){
            var operacion = transport.responseText.evalJSON();
            if (operacion.resultado){
                Information("Aviso del Sistema","El documento se anexo correctamente");
            }else{
                Information("Aviso del Sistema","No se pudo anexar el documento");
            }
            winAnexarDocumento.destroy();
            dsDocumentos.reload({
                params:{
                    ntramidentificador: registroTramite.data.ntram_identificador
                }
            });
        },
        onFailure:function(transport){
            Information("Aviso del Sistema","Sucedio un error al intentar cargar el formulario"+transport.responseText);
        }

    });
}

function insertarDerivarTramite(destino){
    var tramite = $("ntram_identificador").value;
    new Ajax.Request("jsonDerivarTramite.jsp",{
        method:"post",
        parameters: {
            ntram_identificador:tramite,
            ndepe_destino:destino,
            nusua_identificador:codigousuario,
            ndepe_identificador:codigodependencia
        },
        onSuccess: function(transport){
            var operacion = transport.responseText.evalJSON();
            if (operacion.resultado){
                //Information("Aviso del Sistema","El tramite se derivo correctamente");
                Ext.MessageBox.confirm("Confirmación", "El tramite se derivo correctamente. desea derivar otra vez el mismo tramite",
                function(button){
                    if(button=="yes"){
                        derivarTramite(tramite);
                    }else{

                    }
                });
            }else{
                Information("Aviso del Sistema","No se pudo derivar el tramite");
            }
            winDerivarTramite.destroy();
            dsTramites.reload({
                params:{
                    nestridentificador: $("cboestadobandeja").value,
                    nusuaidentificador: codigousuario,
                    ndepeIdentificador: codigodependencia
                }
            });
            limpiarGridTramite();
        },
        onFailure:function(transport){
            Information("Aviso del Sistema","Sucedio un error al intentar cargar el formulario"+transport.responseText);
        }

    });
}

function insertarInicioTramite(){
    var docunumero =$("txtnumerodocumento").value+"-"+$("txtanio").value+"-"+$("txtnombredirpen").value+"-"+$("docSiglas").value;
    var acciontramite = document.getElementById("cboAccionTramite");
    var fechasol = vfechasolicitud.getRawValue();
    var validafecha = esFecha(fechasol);
    var acciones = "0";
    for (var j=0;j<acciontramite.options.length;j++){
        acciones = acciones +","+acciontramite.options[j].value;
    }
    var solicita = "0";
    var solicitabeneficio = document.getElementById("lstTramitesDispuestos");
    for (var i=0;i<solicitabeneficio.options.length;i++){
        solicita = solicita +","+solicitabeneficio.options[i].value;
    }
    if (!validafecha){
        alert("Debe ingresar la fecha valida (dd/mm/yyyy) para la solicitud");
    }else if(document.getElementById("cbotipodocumento").value==""){
        alert("Debe seleccionar el tipo documento que inicia el tramite");
    }else if ($("npers_administrado").value == null || $("npers_administrado").value==""){
        alert("Debe ingresar el causante");
    }else if($("txtsolicitante").value==null||$("txtsolicitante").value==""){
        alert("Debe ingresar el solicitante");
    }else if(   $("txtfonosolicitante").value==null || $("txtfonosolicitante").value==""){
        alert("Debe ingresar número de teléfono del solicitante");
    }else if(   solicita==null || solicita=="0"){
        alert("Debe seleccionar el beneficio que solicita");
    }else if( $("ndocunumero").value==null||  $("ndocunumero").value==""){
        alert("Debe ingresar el número de folios");
    }else if(   acciones==null || acciones=="0"){
        alert("Debe seleccionar las acciones a realizar");
    }else{
        if($("ctram_observaciones").value==null || $("ctram_observaciones").value=="") $("ctram_observaciones").value="[NINGUNA OBSERVACION]";
        if ($("txthtexterna").value==null || $("txthtexterna").value==""){
            var mensaje="¿No se ha referenciado ninguna HT-SIGE. Desea continuar?";
            Ext.MessageBox.confirm("Confirmación", mensaje, function(button){
                if(button=="yes"){
                    var vtienebeneficio = "N";
                    var vprioridad = document.getElementById("cboprioridad").value;
                    new Ajax.Request("jsonInsertarTramite.jsp",{
                        method: "post",
                        parameters: {
                            tramitenumero: 1,
                            timoidentificador: 1,
                            npersadministrado: $("npers_administrado").value,
                            nusuaidentificador: codigousuario,
                            ndepeidentificador: codigodependencia,
                            nestridentificador: $("nestr_identificador").value,
                            ctramhojatramite: $("ctram_hojaTramite").value,
                            ctramobservaciones: $("ctram_observaciones").value,
                            ctramsolicitante: $("txtsolicitante").value,
                            ntidodocumento: document.getElementById("cbotipodocumento").value,
                            cdocunumero: $("txtnumerodocumento").value,
                            cdocunumerocompleto: docunumero ,
                            csiglasoficina:$("docSiglas").value,
                            ndocufolios: $("ndocunumero").value,
                            naccionestramite: acciones,
                            nsolicitabeneficio:solicita,
                            fonosolicitante: $("txtfonosolicitante").value,
                            fechasolicitud: fechasol,
                            htsige: $("txthtexterna").value,
                            tienebeneficio: vtienebeneficio,
                            prioridad: vprioridad
                        },
                        onSuccess: function(transport){
                            var operacion = transport.responseText.evalJSON();
                            if (operacion.resultado){
                                Ext.MessageBox.confirm("Confirmación", "El tramite se inicio correctamente. desea derivar en este momento", function(button){
                                    if(button=="yes"){
                                        derivarTramite(operacion.idtramite);
                                    }else{

                                }
                                });
                            }else{
                                Information("Aviso del Sistema","El tramite no se pudo iniciar.");
                            }
                            winMantenerIniciarTramite.destroy();
                            dsTramites.reload({
                                params:{
                                    nestridentificador: $("cboestadobandeja").value,
                                    nusuaidentificador: codigousuario,
                                    ndepeIdentificador: codigodependencia
                                }
                            });
                        }
                    });
                }
            });
        }else{
            var vtienebeneficio = "N";
            var vprioridad = document.getElementById("cboprioridad").value;
            new Ajax.Request("jsonInsertarTramite.jsp",{
                method: "post",
                parameters: {
                    tramitenumero: 1,
                    timoidentificador: 1,
                    npersadministrado: $("npers_administrado").value,
                    nusuaidentificador: codigousuario,
                    ndepeidentificador: codigodependencia,
                    nestridentificador: $("nestr_identificador").value,
                    ctramhojatramite: $("ctram_hojaTramite").value,
                    ctramobservaciones: $("ctram_observaciones").value,
                    ctramsolicitante: $("txtsolicitante").value,
                    ntidodocumento: document.getElementById("cbotipodocumento").value,
                    cdocunumero: $("txtnumerodocumento").value,
                    cdocunumerocompleto: docunumero ,
                    csiglasoficina:$("docSiglas").value,
                    ndocufolios: $("ndocunumero").value,
                    naccionestramite: acciones,
                    nsolicitabeneficio:solicita,
                    fonosolicitante: $("txtfonosolicitante").value,
                    fechasolicitud: fechasol,
                    htsige: $("txthtexterna").value,
                    tienebeneficio: vtienebeneficio,
                    prioridad: vprioridad
                },
                onSuccess: function(transport){
                    var operacion = transport.responseText.evalJSON();
                    if (operacion.resultado){
                        Ext.MessageBox.confirm("Confirmación", "El tramite se inicio correctamente. desea derivar en este momento", function(button){
                            if(button=="yes"){
                                derivarTramite(operacion.idtramite);
                            }else{

                        }
                        });
                    }else{
                        Information("Aviso del Sistema","El tramite no se pudo iniciar.");
                    }
                    winMantenerIniciarTramite.destroy();
                    dsTramites.reload({
                        params:{
                            nestridentificador: $("cboestadobandeja").value,
                            nusuaidentificador: codigousuario,
                            ndepeIdentificador: codigodependencia
                        }
                    });
                }
            });
        }
    }
}

function recibirTramite(idTramite,idOrigen){
    new Ajax.Request("tramite!recibir",{
        method:"post",
        parameters: {
            ntram_identificador: idTramite,
            ndepe_destino: codigodependencia,
            ndepe_origen: idOrigen
        },
        onSuccess: function(transport){
            var operacion =transport.responseText.evalJSON();
            if (operacion.success){
                Information("Aviso del Sistema",operacion.mensaje);
            }else{
                Information("Aviso del Sistema",operacion.mensaje);
            }
            winMantenerIniciarTramite.destroy();
            mostrarBandeja();
            filtrarBandeja();
        },
        onFailure:function(transport){
            Information("Aviso del Sistema","Sucedio un error al intentar cargar el formulario"+transport.responseText);
        }
    });
}

function idHojaTramite(){
    var ctramHojaTramite = null;
    new Ajax.Request("hoja-tramite", {
        method: "post",
        asynchronous: false,
        onSuccess: function(t) {
            var data = t.responseText.evalJSON();
            ctramHojaTramite = data.ctramHojaTramite;
        }
    });
    return ctramHojaTramite;
}

function getFechaSistema(){
    var fechaSistema = null;
    new Ajax.Request("fecha-sistema", {
        method: "post",
        asynchronous: false,
        onSuccess: function(t) {
            var data = t.responseText.evalJSON();
            fechaSistema = data.fechaSistema;
        }
    });
    return fechaSistema;
}

function filtrarBandeja(){
    dsTramites.load({
        params:{
            nestridentificador: $("cboestadobandeja").value,
            nusuaidentificador: codigousuario,
            ndepeIdentificador: codigodependencia
        }
    });
    limpiarGridTramite();
    if (registroTramite!=null){
        registroTramite.data.ntram_identificador=-1;
    }
    ocultaBoton();
}

function ocultaBoton(){
    if($("cboestadobandeja").value == '1' || $("cboestadobandeja").value == '3'){
        Ext.getCmp("btnrecibirtramite").enable();
    }
    else{
        Ext.getCmp("btnrecibirtramite").disable();
    }
    if ($("cboestadobandeja").value == '5'){
        Ext.getCmp("btnEliminarMovimiento").enable();
    }else{
        Ext.getCmp("btnEliminarMovimiento").disable();
    }

    if ($("cboestadobandeja").value == '3' || $("cboestadobandeja").value == '8'){
        Ext.getCmp("btnAgregarDocumentoTramite").enable();
        Ext.getCmp("btnModificarDocumentoTramite").enable();
    }else{
        Ext.getCmp("btnAgregarDocumentoTramite").disable();
        Ext.getCmp("btnModificarDocumentoTramite").disable();
    }
}

function modificarTramite(idmovi){
    var frmModificarTramite =new Ext.Panel({
        bodyBorder:true,
        height:200,
        bodyStyle: "background-color:#DFE8F6; border:0"
    });

    new Ajax.Request("frmModificarTramite.html",{
        method: "post",
        asynchronous:false,
        onSuccess: function(transport){
            frmModificarTramite.html=transport.responseText;
            winModificarTramite = new Ext.Window({
                title:'Recibir Tramite',
                closeAction:'destroy',
                width:600,
                height: 200,
                shim:false,
                maximizable:false,
                resizable: false,
                animCollapse:false,
                layout: 'fit',
                modal: true,
                items:frmModificarTramite,
                bbar:[{
                    text:'Grabar',
                    iconCls:'icon-save',
                    handler: function(){
                        grabarModificarTramite();
                    }
                }, '-', {
                    text:'Cancelar',
                    iconCls:'icon-cancel',
                    handler: function(){
                        winModificarTramite.destroy();
                    }
                }]
            });
            winModificarTramite.show();
            $("nmovi_identificador").value=idmovi;
            $("ntram_identificador").value=registroTramite.data.ntram_identificador;
            $("ctram_hojaTramite").value=registroTramite.data.ntram_numero;

        }
    });
}

function grabarModificarTramite(){
    new Ajax.Request("jsonActualizarTramite.jsp",{
        method: "post",
        parameters:{
            ntram_identificador:$("ntram_identificador").value,
            nestr_identificador: document.getElementById("cboestadotramite").value,
            nmovi_identificador: $("nmovi_identificador").value
        },
        onSuccess: function(transport){
            var operacion =transport.responseText.evalJSON();
            if (operacion.resultado){
                Information("Aviso del Sistema","Se actualizo el estado de la bandeja correctamente");
                dsTramites.reload({
                    params:{
                        nestridentificador: $("cboestadobandeja").value,
                        nusuaidentificador: codigousuario,
                        ndepeIdentificador: codigodependencia
                    }
                });
                limpiarGridTramite();
                winModificarTramite.destroy();
            }else{
                Information("Aviso del Sistema","No se pudo actualizar la bandeja");
            }
        },
        onFailure:function(t){
            Information("Aviso del Sistema","Sucedio un error al intentar cargar el formulario"+t.responseText);
        }
    });
}

function limpiarGridTramite(){
    dsRutaTramite.reload({
        params:{
            ntramidentificador: "-100"
        }
    });
    dsDocumentos.reload({
        params:{
            ntramidentificador: "-100"
        }
    });
}

function printHojaRuta(){
    var width  = screen.width-50;
    var height = screen.height-100;
    var left   = 10;
    var top    = 10;
    var params = 'width='+width+',height='+height;
    params += ',top='+top+',left='+left;
    params += ',directories=no';
    params += ',location=no';
    params += ',menubar=no';
    params += ',resizable=yes';
    params += ',scrollbars=no';
    params += ',status=no';
    params += ',toolbar=no';
    window.open("RutaTramiteReporte.pdf?ntramcodigo="+registroTramite.data.ntram_identificador,'windowname',params);
}


function eliminarTramiteDocumentario(tramite){
    if (tramite.nestr_identificador==1){
        alert("No se puede eliminar un tramite cuya situacion es pendiente por recibir");
    }else{
        if (tramite.nestr_identificador==3){
            alert("No se puede eliminar un tramite cuya situacion es recibido");
        }else{
            if (tramite.nestr_identificador==5){
                //Consultar si fueron recibidos
                consultaTieneMovimientosSinRecibir(tramite.ntram_identificador)
            }else{
                if (tramite.nestr_identificador==6){

                }else{
                    if (tramite.nestr_identificador==7){

                    }else{
                        if (tramite.nestr_identificador==8){
                            //Eliminar siempre que no haya sido derivado
                            consultaTieneMovimientos(tramite.ntram_identificador);
                        }else{
                            alert("SISINF ERROR: 40001: Estado de tramite no identificado");
                        }
                    }
                }
            }
        }
    }
}

function consultaTieneMovimientos(id){
    new Ajax.Request("jsonVerificaMovimientos.jsp",{
        method: "post",
        parameters:{
            idtramite:id
        },
        onSuccess: function(transport){
            var operacion =transport.responseText.evalJSON();
            if (operacion.existe){
                alert("El tramite ya tiene movimientos. Se deben revertir los movimientos para proceder a eliminar definitivamente el tramite")
            }else{
                eliminaSinMovimientos(id);
            }
        }
    });
}

function consultaTieneMovimientosSinRecibir(id){
    new Ajax.Request("jsonVerificaMovimientosRecibidos.jsp",{
        method: "post",
        parameters:{
            idtramite:id
        },
        onSuccess: function(transport){
            var operacion =transport.responseText.evalJSON();
            if (operacion.existe){
                eliminaSinMovimientos(id);
            }else{
                alert("El tramite ya ha sido derivado y recibido con exito. Deberan revertirse todos los movimientos en las dependencias correspondientes")
            }
        }
    });
}
function eliminaSinMovimientos(id){
    Ext.MessageBox.confirm("Confirmación", "Esta seguro que desea eliminar el tramite?", function(button){
        if(button=="yes"){
            new Ajax.Request("jsonEliminarTramiteSinMovimientos.jsp",{
                method: "post",
                parameters:{
                    idtramite:id
                },
                onSuccess: function(transport){
                    var operacion =transport.responseText.evalJSON();
                    if (operacion.elimino){
                        alert("El tramite se elimino satisfactoriamente");
                        filtrarBandeja();
                    }else{
                        alert("SISINF ERROR: 40002:No se pudo eliminar el tramite")
                    }
                }
            });
        }else{

    }
    });
}

function eliminarMovimientoTramite(data){
    if (data.cesmoDescripcion=="PENDIENTE"){
        new Ajax.Request("jsonVerificaCorrespondenciaMovimiento.jsp",{
            method:"post",
            parameters:{
                idmovimiento:data.nmoviIdentificador,
                iddependencia:codigodependencia
            },
            onSuccess: function(transport){
                var operacion = transport.responseText.evalJSON();
                if (operacion.verifica){
                    Ext.MessageBox.confirm("Confirmación", "Esta seguro que desea eliminar el movimiento?", function(button){
                        if(button=="yes"){
                            new Ajax.Request("jsonEliminarMovimientos.jsp",{
                                method:"post",
                                parameters:{
                                    idmovimiento:data.nmoviIdentificador
                                },
                                onSuccess: function(transport){
                                    var operacion = transport.responseText.evalJSON();
                                    if (operacion.elimino){
                                        alert("El movimiento se elimino satisfactoriamente");
                                        filtrarBandeja();
                                    }else{
                                        alert("SISINF ERROR: 50002:No se pudo eliminar el movimiento")
                                    }
                                }
                            });
                        }else{

                    }
                    });
                }else{
                    alert("No puede eliminar un movimiento que la oficina no ha realizado");
                }
            }
        });
    }else{
        alert("Solo puede eliminar un movimiento que no haya sido recibido");
    }
}